home *** CD-ROM | disk | FTP | other *** search
/ MACD 5 / MACD 5.bin / internet / irc_i_dodatki / eggdrop / eggdrop11.lha / scripts / toolkit.tcl < prev    next >
Text File  |  1997-01-15  |  2KB  |  90 lines

  1. #
  2. # some Tcl procs that might be useful for script packages:
  3. # (some of these require v0.9r or later)
  4. #
  5. # newflag <flag>
  6. #   creates a new flag in the next empty slot.  on success it returns
  7. #   1.  if all the user-defined flags are full (currently there are 10
  8. #   available), or if the flag you're asking for is invalid or already
  9. #   being used, it returns 0.
  10. #
  11. # user-set <handle> <key> <data>
  12. #   stores data about a user in the 'xtra' field of the user record.
  13. #   for example:
  14. #     userstore robey points 5
  15. #   puts "5" under "points" for robey.  there's a limited amount of
  16. #   space in the 'xtra' field for a user record so don't go crazy.
  17. #
  18. # user-get <handle> <key>
  19. #   gets data that was previously stored with 'userstore'.  if there
  20. #   was no info stored under that key, a blank string is returned.
  21. #
  22. # putmsg <nick> <text>
  23. #   sends a message to someone on irc
  24. #
  25. # putnotc <nick> <text>
  26. #   sends a notice to someone on irc
  27. #
  28. # putchan <channel> <text>
  29. #   sends a public message to a channel
  30. #
  31. # putact <channel> <text>
  32. #   does a public action to a channel
  33. #
  34.  
  35. set toolkit_loaded 1
  36.  
  37. proc newflag {flag} {
  38.   foreach i {1 2 3 4 5 6 7 8 9 0} {
  39.     global flag$i
  40.     if {[eval set flag$i] == $i} {
  41.       set flag$i $flag
  42.       if {[eval set flag$i] != $flag} { return 0 }
  43.       return 1
  44.     }
  45.   }
  46.   return 0
  47. }
  48.  
  49. proc user-get {handle key} {
  50.   set xtra [getxtra $handle]
  51.   for {set i 0} {$i < [llength $xtra]} {incr i} {
  52.     set this [lindex $xtra $i]
  53.     if {[string compare [lindex $this 0] $key] == 0} {
  54.       return [lindex $this 1]
  55.     }
  56.   }
  57.   return ""
  58. }
  59.  
  60. proc user-set {handle key data} {
  61.   set xtra [getxtra $handle]
  62.   # is key already there?
  63.   for {set i 0} {$i < [llength $xtra]} {incr i} {
  64.     set this [lindex $xtra $i]
  65.     if {[string compare [lindex $this 0] $key] == 0} {
  66.       set this [list $key $data]
  67.       setxtra $handle [lreplace $xtra $i $i $this]
  68.       return
  69.     }
  70.   }
  71.   lappend xtra [list $key $data]
  72.   setxtra $handle $xtra
  73. }
  74.  
  75. proc putmsg {nick text} {
  76.   putserv "PRIVMSG $nick :$text"
  77. }
  78.  
  79. proc putnotc {nick text} {
  80.   putserv "NOTICE $nick :$text"
  81. }
  82.  
  83. proc putchan {chan text} {
  84.   putserv "PRIVMSG $chan :$text"
  85. }
  86.  
  87. proc putact {chan text} {
  88.   putserv "PRIVMSG $chan :\001ACTION $text\001"
  89. }
  90.